package com.bsoft.gol.hcs.specialist.bean.request;

import com.bsoft.gol.hcs.followup.bean.request.FollowUpQuestionnaireDTO;
import org.springframework.format.annotation.DateTimeFormat;
import com.bsoft.gol.hcs.specialist.entity.FollowUpRouteDetailContent;
import com.bsoft.gol.hcs.specialist.entity.FollowUpRouteDetailForm;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

/**
 * @author tongtp
 * @version v0.1
 * @className AddExecutionListRequest
 * @description 新增随访计划记录
 * @create 2020-08-11 9:24
 **/
public class AddExecutionListRequest implements Serializable {

    private static final long serialVersionUID = 7143695311436082219L;

    private String organizationId;

    private Byte routeDetailType;

    private Long diseaseTypeId;

    private Long[] teamChronicGroupIdList;

    private String operatorId;

    private String medicalRecordId;

    private String medicalRecordName;
    //是否通知患者，0不通知，1通知
    private Byte isNotify;

    private Byte notifyDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date planTime;

    private String autoCreateFlag;

    private Byte followUpStatus;
    //推荐科室入参
    private List<FollowUpRouteDetailRecommendDeptReq> recommendDeptObj;
    //随访内容
    private List<FollowUpRouteDetailContent> followUpList;

    /**
     * 表单列表
     */
    private List<FollowUpQuestionnaireDTO> questionnaireList;

    private List<FollowUpRouteDetailForm> followUpRouteDetailForms;//健康宣教/健康监测



    public List<FollowUpRouteDetailForm> getFollowUpRouteDetailForms() {
        return followUpRouteDetailForms;
    }

    public void setFollowUpRouteDetailForms(List<FollowUpRouteDetailForm> followUpRouteDetailForms) {
        this.followUpRouteDetailForms = followUpRouteDetailForms;
    }


    public List<FollowUpQuestionnaireDTO> getQuestionnaireList() {
        return questionnaireList;
    }

    public void setQuestionnaireList(List<FollowUpQuestionnaireDTO> questionnaireList) {
        this.questionnaireList = questionnaireList;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }


    public String getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    public String getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId;
    }

    public Byte getRouteDetailType() {
        return routeDetailType;
    }

    public void setRouteDetailType(Byte routeDetailType) {
        this.routeDetailType = routeDetailType;
    }

    public Long getDiseaseTypeId() {
        return diseaseTypeId;
    }

    public void setDiseaseTypeId(Long diseaseTypeId) {
        this.diseaseTypeId = diseaseTypeId;
    }

    public Long[] getTeamChronicGroupIdList() {
        return teamChronicGroupIdList;
    }

    public void setTeamChronicGroupIdList(Long[] teamChronicGroupIdList) {
        this.teamChronicGroupIdList = teamChronicGroupIdList;
    }

    public String getMedicalRecordId() {
        return medicalRecordId;
    }

    public void setMedicalRecordId(String medicalRecordId) {
        this.medicalRecordId = medicalRecordId;
    }

    public String getMedicalRecordName() {
        return medicalRecordName;
    }

    public void setMedicalRecordName(String medicalRecordName) {
        this.medicalRecordName = medicalRecordName;
    }

    public Byte getIsNotify() {
        return isNotify;
    }

    public void setIsNotify(Byte isNotify) {
        this.isNotify = isNotify;
    }

    public Byte getNotifyDate() {
        return notifyDate;
    }

    public void setNotifyDate(Byte notifyDate) {
        this.notifyDate = notifyDate;
    }

    public Date getPlanTime() {
        return planTime;
    }

    public void setPlanTime(Date planTime) {
        this.planTime = planTime;
    }

    public String getAutoCreateFlag() {
        return autoCreateFlag;
    }

    public void setAutoCreateFlag(String autoCreateFlag) {
        this.autoCreateFlag = autoCreateFlag;
    }

    public Byte getFollowUpStatus() {
        return followUpStatus;
    }

    public void setFollowUpStatus(Byte followUpStatus) {
        this.followUpStatus = followUpStatus;
    }

    public List<FollowUpRouteDetailRecommendDeptReq> getRecommendDeptObj() {
        return recommendDeptObj;
    }

    public void setRecommendDeptObj(List<FollowUpRouteDetailRecommendDeptReq> recommendDeptObj) {
        this.recommendDeptObj = recommendDeptObj;
    }

    public List<FollowUpRouteDetailContent> getFollowUpList() {
        return followUpList;
    }

    public void setFollowUpList(List<FollowUpRouteDetailContent> followUpList) {
        this.followUpList = followUpList;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("{");
        sb.append("\"organizationId\":\"")
                .append(organizationId).append('\"');
        sb.append(",\"routeDetailType\":")
                .append(routeDetailType);
        sb.append(",\"diseaseTypeId\":")
                .append(diseaseTypeId);
        sb.append(",\"teamChronicGroupIdList\":")
                .append(Arrays.toString(teamChronicGroupIdList));
        sb.append(",\"operatorId\":\"")
                .append(operatorId).append('\"');
        sb.append(",\"medicalRecordId\":\"")
                .append(medicalRecordId).append('\"');
        sb.append(",\"medicalRecordName\":\"")
                .append(medicalRecordName).append('\"');
        sb.append(",\"isNotify\":")
                .append(isNotify);
        sb.append(",\"notifyDate\":")
                .append(notifyDate);
        sb.append(",\"planTime\":\"")
                .append(planTime).append('\"');
        sb.append(",\"autoCreateFlag\":")
                .append(autoCreateFlag);
        sb.append(",\"followUpStatus\":")
                .append(followUpStatus);
        sb.append(",\"followUpList\":")
                .append(followUpList);
        sb.append('}');
        return sb.toString();
    }
}
